System and method delivering remotely stored applications and information

ABSTRACT

The present invention includes computerized method and apparatus for user interactivity with a network application executing on a server. The method and apparatus includes receiving, via a wireless network, an event message from a mobile device, the event message representing an input from a user interface on the mobile device where the user interface is executing based on a mobile application. The method and apparatus further includes generating data values based on the input in the event message and information relating to the mobile device. Moreover, the method and apparatus includes sending an update message to the mobile device based on the data values for updating a display of the mobile device.

CROSS REFERENCE TO RELATED DOCUMENTS

Priority is herewith claimed under 35 U.S.C. §119(e) from copendingProvisional Patent Application No. 60/153,917, filed Sep. 14, 1999,entitled “METHOD AND SYSTEM FOR DELIVERING APPLICATIONS IN CLIENT/SERVERENVIRONMENT,” by Louis M. Franco et al. The disclosure of thisProvisional patent application is incorporated by reference herein inits entirety.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

FIELD OF THE INVENTION

The present invention relates generally to computer processing systemsand, more particularly, to an object-oriented approach for deliveringinteractive links to applications and information stored in remotesources of a network.

BACKGROUND OF THE INVENTION

An important aspect of any computing system is the interface between ahuman user and a computer. An early type of interface was text based. Ina text based interface a user communicates with the computer by typingtext characters with a keyboard and the computer communicates with theuser by displaying text characters on a display screen or monitor.Recently, graphical user interfaces (GUIs) have become increasinglypopular. In a GUI, a computer communicates with a user by displayinggraphics, including text and images, on a monitor and the usercommunicates with the computer by typing in textual commands and/or bymanipulating the displayed images with a pointing device such as, forexample, a mouse, track ball, pressure-sensitive pad, electronic stylusor pen, or like devices.

Many GUIs are implemented in a operating environment referred to as awindow environment. In the window environment, the display on themonitor of the computer is represented as an electronic “desktop,” eachapplication program available on the computer may be represented as an“icon” on the desktop, and each application program running on thecomputer may be represented as one or more electronic “sheets” displayedin regions of the monitor referred to as “windows.”

Generally speaking, an application program presents information to theuser through a window by drawing or “rendering” images, graphics or textwithin the window region. The user communicates with the applicationprogram by selecting objects in the window region with a cursor, whichis controlled by a pointing device, and/or also by typing informationinto the keyboard. In the window environment, the objects and the windowregions may be manipulated or moved about the desktop, and changed insize and appearance so that the user can arrange and/or customize theappearance of the desktop in a convenient manner. The manipulation of anobject by using a pointing device to capture and move the objectsomewhere else on the desktop, from one window region to another windowregion or within a window region, is generally referred to as a “dragand drop” operation.

The window environment described above is generally part of thecomputer's operating system. The operating system also typicallyincludes utility programs that enable the computer system to performbasic tasks, such as rendering objects on the display monitor, storingand retrieving information on a memory device, performing fileoperations and communicating with a network. The application programsinteract with the operating system to provide a direct interface withthe user and higher level functionality such as, for example, to performword processing or other specific tasks. Accordingly, the computerincludes mechanisms for coordinating the operation of the operatingsystem and application programs, including the arrangement of objects onthe display monitor.

Computer processing systems are often implemented in networkconfigurations such as “client/server” configurations. In client/serverconfigurations, a number of personal computers, work stations, portableand/or handheld devices or the like (“clients”) are linked andcommunicate with one or more host computers (“servers”). The serversprocess requests from the clients for information and/or applicationprograms shared by the clients over the network. Today, many local andwide area public and private networks are interconnected to form aworld-wide network of networks generally referred to as the Internet.The Internet permits access to a wealth of information and servicesstored at individual nodes or sites on the network. A particularlyimportant subset of the Internet is the World Wide Web or “web.” The webintroduces graphics capabilities to Internet communications.

Sites on the web, generally referred to as web sites, are connected orlinked together using a special communication protocol such as, forexample, Hypertext Transport Protocol (HTTP), and a Uniform ResourceLocator (URL) that includes a specific syntax for defining a networkconnection on the web. HTTP permits an exchange of information betweenusers and the web sites that contains subject matter of interest to theusers. From a user's prospective, the web appears as a collection ofviewable documents, or web pages, residing at the various web sites. Auser accesses the web pages by executing software, generally referred toas a web browser. A web browser running on the user's computer sendsinstructions (including the desired URL) for connecting to a specifiedhost computer (i.e., web server) that stores web pages of interest tothe user. A link, such as a hyperlink, is created under thecommunication protocol. By selecting links and employing a web browser,a user may “navigate” from one document to another, and from one website to another, to access informational content and services availableacross the web.

One of the fastest growing uses of the Internet is as a vehicle ofcommerce. The world-wide access achieved by use of the web makes the webideal for both small and large businesses who may enter the market by“launching” web sites offering their goods and/or services for sale. Asa result, the informational content and services available to users ofthe web are considerable and are growing more so, everyday.

Despite the success of the web, problems persist for both users andbusinesses. For example, users need to locate items or services ofinterest from the vast number of sites on the web and, similarly,businesses need to distinguish themselves from competition to attractand hold the interests of desirable customers.

Search engines assist users in locating content and services ofinterest. However, even armed with searching tools, locating andretrieving informational content and services of interest from the manyhundreds of thousands of web sites currently operating over the web maybe cumbersome. The results of searches typically yield so many web sitesthat the effort to review the results and narrow the search may beoverly cumbersome.

To distinguish their goods and/or services on the web, businesses oftenadvertise their web site names in conventional media such as televisionand/or print advertisements. Businesses may also employ a web basedsolution in which rich, visually pleasing advertisements areincorporated in a number of popular web sites. The advertisements,generally referred to as “banner ads,” often include links to thebusiness' web site. Therefore, when the banner ad is selected, the useris transferred to the business web site where further informationregarding the goods/services are displayed.

A perceived disadvantage of existing systems and methods for locatingsites of interest and/or for attracting customers is that the links tothe sites of interest generally must be acted upon from the page theyare displayed or they are lost. In other words, conventional systems andmethods present web sites that may include static links to other websites. If a user is interested in viewing the other web site then theuser must navigate to it or record the URL of the site for later use. Ascan be appreciated, it may be undesirable for the user to leave thecurrent site to follow the link to the other site as the user may beperforming an important and/or time sensitive task. As a result, apotentially valuable marketing or sales opportunity may be lost.

Facilities presently exist for storing an address (URL) of a web sitecurrently being displayed. One such facility is referred to as a“bookmark.” Once created, bookmarks offer a means of retrieving the URLof a particular web site and directing the user's browser to display thepage residing at the URL. Bookmarks eliminate the need for the user tomanually enter the URL of a site of interest or to retrace (re-navigate)a path through the Internet to arrive at the web site through a knownlink. However, bookmarks are limited in two respects. Firstly, a webpage must be displayed before the URL corresponding to the web page canbe stored as a bookmark. Secondly, bookmarks do not maintain informationpertaining to a previous operating state of the web site. For example, abookmark may return a user to a previously displayed web page, such as aform for completing a commercial transaction, but information that mayhave been completed on the form is generally not saved. That is, thecompleted information is generally not stored unless the information ismade available through another tracking facility referred to as a“cookie.” Cookies maintain tracking information on the user's computerthat may be referenced once the browser reloads the desired web page andinvokes the application included therein. Once the application isinvoked, information that was previously entered and stored in thecookie may be restored in the application. Cookies, however, aregenerally time-sensitive and may expire before a user attempts tore-navigate to the site of interest. Also, cookies are only stored onthe computer where the original transaction occurred. If the useraccesses the site from another computer, the tracking information is notavailable.

Therefore, there is a need for storing an interactive link on a user'scomputer which, when selected, retrieves and presents applicationsand/or information stored at remote locations across the network. Thereis also a need for the interactive link to include facilities forrestoring previous operating states of the application as theapplication is re-presented at a user's computer.

OBJECTS OF THE INVENTION

Accordingly, it is an object and advantage of this invention to provideinteractive links to applications and information remotely stored acrossa network.

It is another object and advantage of this invention to providegraphical representations of interactive links to remotely storedapplications and information, the graphical representations beingdownloadable to client computers and selectively employed to retrieveand present the remotely stored applications and information on theclient computers.

It is still another object and advantage of this invention to providegraphical representations of interactive links to remotely storedapplications and information, the graphical representations beingdownloadable to and transferable between one or more client computersfor selectively retrieving and presenting remotely stored applicationsand information on each of the client computers.

It is yet another object and advantage of this invention to provideinteractive links to remotely stored applications and information,wherein when selectively employed to retrieve and present the remotelystored applications and information on a client computer, a previousoperating state of the applications and information may be restored.

It is still another object and advantage of this invention to providegraphical representations of interactive links to remotely storedapplications and information, the graphical representations beingdownloadable to client computers and having a commercially recognizableappearance for identifying the remotely stored applications andinformation.

Further objects and advantages of this invention will become moreapparent from a consideration of the drawings and ensuing description.

SUMMARY OF THE INVENTION

The foregoing objects and advantages are realized by methods andapparatus in accordance with embodiments of this invention, whereininteractive links for retrieving applications and information fromremote sources in a network configured computer processing system arepresented.

In one embodiment, a method for delivering the interactive linksincludes storing at a first remote source (e.g., a content provider)informational content (e.g., applications and information) havingcomputer program code embedded therein. The method includes retrievingthe informational content by a client computer of the system over afirst communication connection to the content provider. In response tothe retrieval of the informational content, the method further includesexecuting at the client computer the computer program code embedded inthe informational content for establishing a second communicationconnection to a second remote source (e.g., an application server) onthe network, and presenting via the second communication connection tothe application server remotely stored applications and information. Theremotely stored applications are executable at the application serverfor providing functionality of interest to the client computers. Theinformation presented over the second communication connection includesat least presentational information providing at least one ofinstructions for rendering components of the remotely storedapplication, default parameters and data values exhibited within thecomponents, and application-specific business logic for processing inputto the application.

The method also includes storing on the client computer an interactivelink for selectively re-establishing the second communication connectionto the application server for invoking and presenting the remotelystored application and information on an as-needed basis.

Additionally, the method includes downloading to the client computer agraphical representation of the interactive link from within theinformational content delivered over the first communication connection,associating to the graphical representation a file containinginformation representing an operating environment of the client computerand a network address of the application server, and displaying thegraphical representation on the client computer. Preferably, thedownloading of the graphical representation is achieved in an improveddrag and drop operation.

In accordance with a preferred embodiment, the graphical representationsof the interactive links includes information for identifying therespective remotely stored application and information invoked by theinteractive link, and a symbol indicating that the graphicalrepresentation is an interactive link. In one embodiment, theidentifying information includes at least one, or both, of an icon and alabel representing a commercially recognizable brand name of theremotely stored application and information, and the symbol is ateardrop-shaped symbol.

Once the interactive link and the graphical representation aredownloaded, the graphical representation may then be selected. Inresponse to the selection, the method includes accessing the contents ofthe file associated to the graphical representation and re-establishingthe second communication connection to the application server forinvoking and presenting the remotely stored application and/orinformation associated to the interactive link.

In yet another embodiment, the method includes storing at theapplication server information representing a first operating state ofthe remotely stored application and/or information for a particularuser, and in response to the selection of the graphical representation,presenting the first operating state information as the remotely storedapplication and/or information is presented to that particular user.

In a still further embodiment, the method includes transmitting a copyof the interactive link to a next client computer such that the nextclient computer is operable for selectively establishing the secondcommunication connection to the application server for invoking andpresenting, at the next client computer, the remotely stored applicationand information. In this embodiment, information may be stored fortracking transmissions of interactive links between the client computersof the network-configured computer processing system.

In a preferred embodiment, the network-configured computer processingsystem includes an Internet connection and the client computer includesa desktop-based repository for links to the remotely stored applicationsand information and an Internet-based repository for the links.Accordingly, the interactive links may be selectively stored in thedesktop-based repository or in the internet-based repository.Alternatively, the links are stored in both of the desktop-basedrepository and the internet-based repository.

In accordance with the present invention, a computer processing systemis configured and operates as follows. The system includes a pluralityof client computers that each includes an application program code, anoperating system program code and a presentational client program codeoperating thereon. The application program code requests informationalcontent, applications and information stored remotely across a network.The system also includes a first server computer (e.g., the contentprovider) that stores informational content. Predetermined ones of theinformational content include computer program code embedded therein.The content provider delivers the informational content in response torequests from the client computers. A second server computer (e.g., theapplication server) is included within the system. The applicationserver stores applications that may be invoked for presentingfunctionality of interest at the client computers. The applicationserver also stores information such as presentational informationincluding at least one of instructions for rendering components of theapplication, default parameters and data values exhibited within thecomponents, and application-specific business logic for processing inputto the application.

The system also includes a communication connection between a requestingclient computer and the application server. The communication connectionis formed in response to an initial delivery of one of the predeterminedinformational content and an execution of the computer program codeembedded therein. The presentational client program code, utilizing thecommunication connection, presents functionality of the remotely storedapplications and information on the requesting client computer. Thecommunication connection is disconnected upon termination of theremotely stored applications and information. The system furtherincludes an interactive link that is stored at the requesting clientcomputer for selectively reforming the communication connection to theapplication server, re-invoking the remotely stored applications andinformation, and re-presenting the functionality of the remotely storedapplications at the requesting client computer.

Preferably, the predetermined ones of the informational content includethe interactive link. When stored on the client computer, theinteractive link includes a graphical representation of the remotelystored applications and information presented on the client computer anda file containing information representing an operating environment ofthe client computer and a network address of the application servercomputer. In this preferred embodiment, the graphical representationincludes a symbol for indicating that the graphical representation is ofan interactive link and at least one of an icon and a label representinga commercially recognizable brand name of the remotely storedapplications and information.

In another embodiment, the application server includes a data repositoryfor storing information representing a first operating state of theremotely stored applications and information presented to a particularuser at a client computer. Accordingly, the system further includes adevice for retrieving, delivering and presenting the previous operatingstate information from the data repository as the remotely storedapplications and information are presented to the particular user at thesame or another client computer.

In yet another embodiment, the system includes a device for transmittingand storing a copy of the interactive links at a next client computer.When the links are stored, the next client computer is operable forselectively requesting the remotely stored applications and informationand forming the communication connection between the next clientcomputer and the application server. The system further includes a datarepository for storing information for tracking transmissions ofinteractive links between the client computers.

BRIEF DESCRIPTION OF THE DRAWINGS

The above set forth and other features of the invention are made moreapparent in the ensuing Detailed Description of the PreferredEmbodiments when read in conjunction with the attached Drawings,wherein:

FIG. 1 is a block diagram of an exemplary droplet-enabled client/serversystem constructed and operating in accordance with one embodiment ofthe present invention;

FIG. 2 illustrates a web page including an exemplary droplet-enabledapplication in accordance with one embodiment of the present invention;

FIG. 3 is a simplified flow diagram illustrating an exemplary flow ofmessages between an exemplary droplet-enabled client computer and anapplication server operating in accordance with one embodiment of thepresent invention;

FIGS. 4A-4D illustrate an improved drag and drop operation in accordancewith one embodiment of the present invention;

FIG. 5 illustrates a selection of an exemplary, locally storedinteractive link and the resulting invocation of a corresponding,exemplary droplet-enabled application;

FIG. 6 is a simplified block diagram of the system of FIG. 1 wherein anevent channel communication scheme is particularly highlighted;

FIG. 7 illustrates a logical structure of an exemplary droplet-enabledapplication as compared to conventional application structure; and

FIG. 8 is a simplified block diagram of the exemplary droplet-enabledclient/server system constructed and operating in accordance with oneembodiment of the present invention.

Identically labeled elements appearing in different ones of theabove-described figures are intended to refer to the same elements butmay not be referenced in the description for all figures.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates the general architecture of a client/serverconfigured computer processing system 10 constructed and operating inaccordance with the present invention. For illustration purposes, FIG. 1shows a single client computer 20 operatively coupled over a network 50to a content provider 30 and an application server 40. However, thepresent invention contemplates (as discussed below with reference toFIG. 8) that the system 10 includes a plurality of client computersoperatively coupled over the network 50 to two or more host/servercomputers. While the content provider 30 and the application server 40are referred to herein as two separate computers, it is within the scopeof the present invention for these computers 30 and 40 to be the samephysical computer serving two logically separate functions. In apreferred embodiment, the network 50 is a packet-switched network suchas, for example, the Internet, an intranet or an extranet. It should beappreciated that it is within the scope of the present invention for thenetwork 50 to include wired and wireless connections between the clientcomputers and server computers.

The content provider 30 services requests from the client computer 20for informational content 36 such as, for example, applications 32 orinformation 34 shared by users over the network 50. In accordance withthe present invention, the informational content 36 delivered to theclient computer 20 by the content provider 30, over a communicationconnection 52, may include one or more links 62 and Droplets™ 64. Forexample, a document 60 delivered to the client computer 20 includes alink 68 and a droplet 70. In some embodiments, a Droplet™ is anapplication, or set of applications, that executes on the clientcomputer 20 and, in cooperation with a presentation client 25 (installedat the client computer 20) and an operating system of the clientcomputer 20, shown generally at 80, establishes a communicationconnection 54 with the application server 40 for retrieving information43 and presenting functionality of remotely stored applications 41 onthe client computer 20. The informational content 36 containingDroplets™ may hereinafter be referred to as “droplet-enabled” content.

In one embodiment, the requested applications 32 and/or information 34include functionality presented on the client computer 20 by theapplications 41 executing remotely on the application server 40. Thatis, the application 41 is invoked by the droplet 70, as the droplet 70executes on the client computer 20. As discussed in detail below, thelinks within the delivered informational content 36 (e.g., link 68) maybe stored locally on the client computer 20 as interactive links 72that, when selected, retrieve the information 43 and invoke theapplications 41 to present the functionality of the applications 41 atthe client computer. In particular, when performing a subsequentretrieval of the functionality presented by the applications 41, theapplications 32 and/or information 34 that originally provided the link68 (now locally stored as the interactive link 72) to the applications41 need not be retrieved. Rather, the interactive link 72 can beemployed to directly invoke and execute the applications 41 on theapplication server 40 to provide the requested functionality at theclient computer 20. The initial and subsequent retrieval ofdroplet-enabled content and applications is discussed in further detailbelow.

Initially, Droplets™ 64 execute as the informational content 36containing the links 62 and Droplets™ 64, e.g., the document 60containing the link 68 and the droplet 70, is delivered to the clientcomputer 20. That is, the droplet 70 executes and notifies the dropletpresentation client 25 that it has been loaded to the client computer20. Next, the droplet 70 cooperates with the droplet presentation client25 and the operating system software 80 of the client computer 20 toestablish the communication connection 54 to the application server 40.The link 68 is an interactive link presented within the informationalcontent 36 for invoking the applications 41 and retrieving information43 residing at remote locations on the network 50. Once thecommunication connection 54 is established, the droplet 70 transmits astartup message to the application server 40. In response to the receiptof a startup message from the droplet 70, the application server 40executes the associated application 41 to present the applicationfunctionality and information 43 to the client computer 20.

In accordance with the present invention, Droplets™ (e.g., the droplets64 and 70) are dynamic and “thin” applications. That is, the Droplets™generally include information identifying the operating environment onthe client computer 20, the application server 40 to connect with and anapplication on the server 40 that is run to deliver the requestedfunctionality to the client computer 20 once the connection is made. Theinformation identifying the operating environment on the clientcomputers 20 provides information to the application server 40 regardingthe operating system and hardware capabilities of the particular clientcomputer 20 that requested the droplet-enabled content 36. That is, theplurality of client computers 20 may include computer workstations,personal computers and portable devices such as, for example, laptop andnotebook computers, PalmPilots and internet-enabled radio telephones. Asis apparent to those in the art, each such device platform includesdiffering user interfaces. As such, not all client computers 20 arecapable of presenting for example, full color, high-resolution graphics.By providing the operating environment of the requesting client computer20 to the application server 40, the application server 40 providesinformation 43 to present the requested applications 41 on the clientcomputer 20. The information 43 includes, for example, instructions 42for rendering graphical objects within the presented applications 41,default parameters or data values 44 displayed within the applications41 and application-specific business logic 46 for processing inputs tothe applications 41.

In accordance with one aspect of the present invention, a dropletapplication developer creates droplet-enabled applications or servedversions of each application for presenting particular functionality toclient computers having differing user interface (“UI”) requirements.For example, a droplet-enabled email application may be implemented anumber of ways such that a first version may operate on a personalcomputer having capabilities for providing full color, high-resolutiongraphics and a second version for operating on an internet-enabled radiotelephone having only text-processing capabilities. In accordance withthis aspect of the present invention, a droplet communicates one of thediffering client environments and, in particular, client UIrequirements, to the application server 40 which automatically provides,for example, the first version to a requesting personal computer and thesecond version to the requesting radio telephone. Alternatively, theDroplet™ could determine UI requirements from the client operatingsystem or other locally stored data.

Since Droplets™ store a limited amount of information, that is, only theinformation necessary for establishing a connection (e.g., thecommunication connection 54) to a application server 40, Droplets™require a minimum amount of storage space on a client computer, forexample, no more than about 500 k bytes. Similarly, during execution,Droplets™ consume no more than about 2M bytes of heap (dynamic memoryallocation space). Therefore, a large number of Droplets™ may executesimultaneously without significantly reducing the memory available forother, concurrently executing applications. The droplet presentationclient 25 requires local storage of about 1M bytes for a completeinstallation. Once the droplet presentation client 25 is installedlocally, the client computer 20 is “droplet-enabled.”

It should be appreciated that, in one embodiment, the droplets (i.e.,droplet 70) may include rendering instructions, parameters and/or datavalues that override the default information (i.e., the instructions 42and values 44) received from the application server 40.

Preferably, the communication connection 54 initiated by the droplet 70between the client computer 20 and the application server 40 istransparent to the user. That is, when the requested informationalcontent 36 is delivered and presented on a display device of the clientcomputer 20, the droplet 70 executes and, with the presentation client25, establishes the communication connection 54. As noted above, theinformational content 36 may include links to remotely storedapplications 41, that are invoked to present functionality at the clientcomputer 20. Presentational information 43 to present and serve, forexample, various graphical objects (GUI objects) such as windows, editboxes, drop-down lists, check boxes, buttons and/or labels includedwithin the application 41, is received over the communication connection54 as the functionality is presented on the display device or monitor ofthe client computer 20.

FIG. 2 illustrates a droplet-enabled application 100 entitled “StockWatcher” that is presented on the desktop of the client computer 20. Inthis exemplary embodiment, the Stock Watcher application 100 ispresented within a window on a web page, shown generally at 110,utilizing the MICROSOFT® Internet Explorer™ web browser application. Asshould be appreciated, the present invention contemplates otherpresentational mechanism for droplet-enabled applications, that is,non-web based delivery such as a stand alone application programprovided via a CD disk, floppy disk or like storage media. Otherexemplary mechanisms are discussed in detail below.

As is known, web pages such as web page 110 are constructed usingsoftware such as the Hypertext Markup Language (HTML). A web page (i.e.,web page 110) is droplet-enabled by embedding one or more Droplets™within the page. Preferably, the droplets are embedded by using softwarecommands such as, for example, “<applet>” or “<embed>” tags of the HTMLlanguage. As a web browser encounters a droplet-enabled web page, suchas web page 110, instances of the droplets are invoked to initiate thecommunication connection 54 with the application server 40, as discussedabove. Therefore, as a user navigates to web page 110, the dropletsassociated with the Stock Watcher application 100 are encountered in theweb page 110 and execute. A droplet, in cooperation with the dropletpresentation client 25, delivers the Stock Watcher application 100 overthe communication connection 54, and presents the application 100 withinweb page 110. It should be appreciated that the user is generallyunaware of the communication connection 54 established to theapplication server 40, as web page 110 and its corresponding GUIobjects, e.g., text box 112, drop-down list 114, radio buttons 116 andcommand buttons 118, are presented within the web page 110 as the page110 is loaded.

The Stock Watcher application 100 also includes an object referred to asa droplet handle 120. FIG. 2 presents the droplet handle 120 in apreferred configuration representing a teardrop-shaped icon on theapplication's title bar. As is discussed in detail below, droplethandles may be icons, graphical images, or strings of text, that may beselected and downloaded to store, on a client computer 20, theinteractive links (e.g., links 72 of FIG. 1) to droplet-enabledapplications 41 remotely stored across the network 50.

In accordance with the present invention, Droplets™ are generic oruniversal applications that can be implemented on a variety of computerhardware and software platforms. For example, and as discussed brieflyabove, the droplet-enabled client/server system 10 may be implemented inan Internet environment. In this respect, Droplets™ may include adownloadable Java applet, ActiveX controls, a browser plug-in written inthe Java, C++ or other suitable programming language, or othermultimedia objects, that are invoked as a web page is loaded. In the webbased implementation, the Droplets™ cooperate with the dropletpresentation client 25 and the web browser running on the clientcomputer 20 to establish the communication connection 54 to theapplication server 40 and to present the droplet-enabled applications 41and information 43 on the web page.

Alternatively, the Droplets™ may be included within a stand-alonesoftware application that is installed and executes on the clientcomputer 20. As connection to the application server 40 is stilldesirable in the stand-alone implementation, the Droplets™ includecapabilities for establishing the communication connection 54 to theapplication server 40 and for presenting the droplet-enabledapplications 41 and information 43 for use within the stand-aloneapplication. Therefore, the Droplets™, the droplet presentation client25, the local operating system 80 of the client computer 20 and the webbrowser or stand-alone software program executing on the client computer20 cooperate to establish the communication connection 54 to theapplication server 40 through conventional means such as, for example,with socket connections or by transmitting and receiving HTTPtransactions.

As is apparent to those of skill in the art, the cooperation between theDroplets™, the droplet presentation client 25, the local operatingsystem 80 of the client computer 20 and the web browser or stand-alonesoftware program executing on the client computer 20 to establish theconnection to the application server includes the communication andsharing of information and a variety of functions and programminginterfaces (generally referred to as APIs). That is, in the preferredembodiment of the present invention, standard operating systeminterfaces are utilized to access, create, control and manipulatefeatures and functions of the client computer 20 such as, for example,window management, GUI and multimedia object management, system serviceprocedures to establish socket and network connections, and generallyany integration between the remotely executing applications, droplets,locally executing application and underlying operating system.

Whether in a web based or stand-alone implementation, the information43, that is, instructions 42 for rendering graphical objects within thedelivered droplet-enabled applications 41, default parameters or datavalues 44 displayed within the droplet-enabled applications 41 andapplication-specific business logic 46 for processing inputs to thedroplet-enabled applications 41, is provided by the application server40, in accordance with the operating environment of the requestingclient (e.g., the client computer's operating system, user interface andhardware capabilities).

In one embodiment, the information 43 is provided by the applicationserver 40 to the client computer 20 and stored therein in anticipationof a later use in which the user can not, or prefers not, to establishthe communication connection 54, e.g., the internet connection, to theapplication server 40. In this embodiment, for example, the remotelystored application 41 and information 43 are downloaded and locallyinstalled and/or stored at the client computer 20. The locally installedapplication 41 may be invoked to execute on the client computer 20 byselecting the link, as discussed above. In one aspect of the presentinvention, the application server 40 may evaluate the capabilities ofthe client computer 20 and automatically download all or a portion ofthe application 41 and/or information 43 for local installation on theclient computer 20. In this respect, the locally installed application(in the form of, for example, native executables) may executeeliminating, during at least a portion of its execution, the need toreceive rendering instructions 42, default parameters 44, orapplication-specific logic 46 from the application server 40.

In accordance with one aspect of the present invention, a networkcommunication protocol is defined for transmitting information betweenthe droplet-enabled applications 41 and the application server 40. Theprotocol includes a number of message formats wherein properties of andevents pertaining to components, such as the GUI components, of activelyoperating droplet-enabled applications 41 are communicated between theclient computer 20 and the application server 40. The message formatsinclude, for example:

-   -   1. Event Notifications—messages transmitted from a client        computer 20 to the application server 40 reporting that a value        or attribute of a component of the GUI has been altered. Events        include, for example, data entry into text boxes and drop-down        lists of the GUI, selection (“clicking”) of GUI components such        as radio and command buttons. Messages are also transmitted in        response to other pointing device or keyboard driven actions        such as, for example, drag and drop events as an e-mail message        is moved to a folder within a droplet-enabled e-mail        application.    -   2. Update Commands—messages transmitted from application        drivers, e.g., the application specific logic 46 supporting a        droplet-enabled application, on the application server 40 to the        client computer 20 requesting action within screen components of        the system 10, such as GUI components within the delivered        content.    -   3. Window Commands—messages transmitted from the application        drivers on the application server 40 to the client computer 20        that specify that a generic window should be opened or closed,        or that the droplet-enabled application should present one of a        set of standard dialogs (e.g., a message box, a question box or        a menu). The droplet-enabled application may transmit a window        command to notify the application server 40 that a user has        manually closed an active window on the desktop.    -   4. Browser Commands—messages directed to a web browser running        on the client computer 20 in which the droplet-enabled        application is included. If the droplet-enabled application is        included within a stand-alone software application that does not        include a web browser, then these messages are sent to a default        browser.    -   5. Session Commands—messages transmitted from either the client        computer 20 or the application server 40 for initiating,        suspending, or terminating sessions between the client computer        20 and the application server 40.    -   6. Service Directory—messages sent by the application server 40        to inform the client computer 20 of services that are available        at the application server 40. Enabled client computers 20 that        receive service directory messages can present the directory of        services to users and can transmit a user's request for a        particular service back to the server for processing.

The above described communication protocol and message formats provide areal-time push/pull messaging scheme between the user interface, and GUIcomponents included therein, of an active droplet-enabled applicationpresented on client computer and application drivers supporting the userinterface from the application server 40. For example, an executingdroplet-enabled application such as the Stock Watcher application 100receives real-time information such as revised stock prices or sharesavailable for trading as they are posted by an issuing agency. The userneed not manually request a refresh of GUI components presenting thepricing and availability information, rather the client computerautomatically receives the real-time updates to the components as thedroplet-enabled application runs on the application server 40.

In one embodiment, a continuous open socket communication connection ismaintained between the client 20 and server 40 to receive the real-timeupdates as they are posted (push transaction). In another embodimentwherein, for example, a firewall or proxy server security platform doesnot permit the continuous open socket connections, a request for updatesis periodically transmitted by the client computer 20 to the applicationserver 40. The automatic pseudo-real-time messaging strategy embodies apull type messaging mechanism. It should be appreciated that the system10 seamlessly implements this update messaging mechanism by firstattempting the real-time push of update information, and if theapplication server 40 is not permitted to maintain an open connectioncommunication channel, the server 40 informs the client computer 20 toemploy the pull-type messaging mechanism by periodically requestingupdate information. In each of the above-described messaging schemes,the user at the client computer 20 receives the update informationwithout manually requesting a refresh of the information.

FIG. 3 is a diagram illustrating a typical sequence of messagestransmitted between the client computer 20 and the application server40. As is shown, connect/startup messages 200 are transmitted to theapplication server 40 by the droplet 70 running on the client computer20 when the droplet-enabled content 36 is delivered to the clientcomputer 20. The startup messages 200 include information identifyingthe operating environment on the client computer 20, the applicationserver 40 to connect with and an application on the server 40 that isrun to deliver content to the client computer 20 once the connection ismade.

As discussed above, the information identifying a client computer'soperating environment provides the application server 40 a means forpresenting a droplet-enabled application having a user interfacecustomized to the capabilities of the client computer's operatingsystems and hardware.

The application server 40 responds to the startup messages 200 bytransmitting messages 210 including information 43 (e.g., renderinginstructions 42, default parameters and values 44, etc.) to present thedroplet-enabled applications 41 on the client computer 20. In theweb-based implementation, the droplet-enabled application 41 ispreferably executing on the application server 40 as the messages 210are provided to the client computer 20. During the course of executingthe droplet-enabled applications 41 and presenting the functionalitythereof on the client computer 20, messages 220 including event andupdate information are repeatedly communicated between the clientcomputer 20 and the application server 40. As such, the dropletsfacilitate an interactive communication environment between the clientcomputer 20 and the application server 40.

Finally, a message 230 including a terminate session command istransmitted to the application server 40 when, in the web-basedimplementation, the web page containing the droplet-enabled applicationis closed or the user navigates to another page, and, in the stand-aloneimplementation, as the stand-alone droplet-enabled application is closedor otherwise terminated.

The communication protocol and message formats (discussed in detailabove) provide real-time communication between the client computers 20and the application server 40. It should be appreciated that thecommunication protocol and messaging format transmit information thatdefine differences between a current application state and a nextapplication state, the information being referred to herein as netchange information. Transmitting net change information permits, forexample, a change of state to of individual components on a screen asopposed to transmitting all screen data and repainting the entire screenfrom the transmitted screen data. By transmitting only net changeinformation, communication resources such as, for example, bandwidth andtransmission times are optimized. As such, droplet-enabled applicationsdeliver rich application functionality over minimum network bandwidthand may operate over thin dial-up or wireless networks as well asbroadband networks. Further, droplet-enabled applications supported fromremote network sites appear as responsive as applications loaded andexecuting locally on the client computer 20.

The above described message formats and general sequence of messagingare utilized by the droplet-enabled applications 41 and the applicationserver 40 to support, in cooperation with the presentation client 25 andthe local operating system (e.g., operating system software 80), thefollowing features and functions on the desktop of the client computer20:

-   -   1. downloading interactive links to droplet-enabled applications        and information;    -   2. branding of droplets;    -   3. transferring of links to droplet-enabled        application/information between client machines;    -   4. securing an instance of a droplet-enabled        application/information;    -   5. tracking droplet dispersion information;    -   6. providing an ubiquitous event channel;    -   7. persistent state maintenance;    -   8. mirroring desktop to webtop;    -   9. multiple platform implementation of droplets; and    -   10. security features.

Downloading Interactive Links to Droplet-Enabled Application andInformation:

As discussed in the Background Section of this Specification, objectsdisplayed on a GUI (e.g., on the desktop or a window region thereof) maybe captured and moved about the GUI in a “drag and drop” operation. Inaccordance with the present invention, the links to droplet-enabledapplications within informational content 36 delivered to a clientcomputer (e.g., a link to a droplet-enabled application presented withina banner ad on a web page) may be downloaded to the client computer viaa drag and drop operation. That is, a droplet handle object incorporatedon the banner ad of the delivered informational content 36 may becaptured by, for example, selecting the droplet handle object, andmoving (dragging) the handle about the client computer's GUI. When in adesired location or position on the client computer, the droplet handleobject may be locally loaded (dropped) in an improved drag and drop typeof operation.

Specifically, the present invention supports the downloading (e.g.,dragging and dropping) of links to droplet-enabled applications withindelivered informational content 36 from: (1) a web page onto thedesktop; (2) a first window region onto another window region thataccepts files; and (3) a web page or window region onto a directory oran application program's menu such as, for example, the Start Menu ofthe Microsoft Windows™ operating system software. Accordingly, locallystored links are selected to invoke and present, on the client computer20, functionality provided by droplet-enabled applications, executing onthe application server 40, and information on an “as-needed” basis.

With reference to FIGS. 4A-4D, a preferred embodiment of the downloadingoperation is disclosed. As shown in FIG. 4A, a droplet-enabled StockWatcher application 100′ includes a selectable droplet handle object,represented as a teardrop-shaped icon 120′, located on its title bar. Apointing device (not shown) positions a cursor 300, represented as ahand having a pointing finger, above the icon 120′. The icon 120′ isselected by, for example, holding down on a button associated with thepointing device (e.g., a left mouse button). The selected icon 120′ isthen moved (e.g., dragged) from a window 110′ presenting the StockWatcher application 100′ to another location on the GUI by moving thecursor 300 from the window 110′ to, for example, a portion 310 of thedesktop of the client computer 20 (FIGS. 4B and 4C). The icon 120′ isthen released by disengaging the pointing device to place (drop) agraphical representation 320 of the Stock Watcher application 100′ onthe portion 310 of the desktop (FIG. 4D).

While the downloading of interactive links to droplet-enabledapplication and information is described above with references to FIGS.4A-4D as preferably including a drag and drop operation, it should beappreciated that the present invention contemplates other means fordownloading the links to a droplet-enabled application. For example, alink to a droplet-enabled application may be downloaded to a clientcomputer by invoking a menu command to download a graphical objectrepresenting the link or by pressing a combination of keyboard keys atthe client computer 20 such as “CTRL” “ALT” and “D.”

In one embodiment, the cursor 300 is utilized to initiate a download tothe client computer 20 of one of the interactive links in one of twoways. Firstly, and as discussed above with reference to FIGS. 4A-4D, thecursor 300 is positioned above an object representing the link, i.e.,the icon 120′, by manipulating the pointing device. As the icon 120′ isselected to initiate the download, a visual characteristic of the cursor300 is modified. That is, the hand having the pointing finger (FIG. 4A)is transformed to a cursor 302 where a closed hand encloses the teardropshaped droplet symbol (FIG. 4B). To further illustrate the capture ofthe icon 120′, the icon 120′ is also transformed into a symbol 122 of,for example, an empty circle. As noted above, the cursor 302 is movedabout the desktop by holding down on a button of the pointing device andmanipulating the cursor 302. Once in a desired location on the clientcomputer 20, e.g., on the desktop (FIG. 4C), the link is loaded to theclient computer by releasing the button of the pointing device. Oncereleased, by disengaging the mouse button, the link is loaded to theclient computer 20 (FIG. 4D). It should be appreciated that the visualrepresentations discussed above of the cursor 302 and icon 122 aremerely illustrative and other visual representations of the selectedcursor and icon are contemplated such that when selected, for example,an object may appear in reverse video, a frame may be drawn around theobject or “handles” may appear at various corners of the selectedobject.

Secondly, the icon 120′ may be selected by positioning the cursor overthe icon 120′ using the pointing device, depressing and releasing thebutton on the pointing device. As is generally known to those of skillin the art, performing a depressing and releasing operation on an object(referred to as “clicking” the object) is a separate operation fromdepressing, holding and moving an object. In response to the clickingoperation, a submenu (generally referred to as a “pop-up” menu) appearsat the current cursor location. The pop-up menu includes a list ofoptions for downloading the link to, for example, the desktop or awindow on the desktop. It should be appreciated that the list of optionsfor downloading may appear in various manners. That is, each option ofthe list displayed in the pop-up menu may be represented by textdescribing the operation (e.g., “download to the desktop”, “download tothe start menu”, etc.), a text label followed by a control such as aradio button or a check box, or a graphic icon. Each of the items isselectable for invoking a specific download operation.

In accordance with one aspect of the present invention, the graphicalrepresentation 320 of a droplet-enabled application, i.e., the StockWatcher application 100, includes information for identifying theapplication and a symbol that indicates that the application isdroplet-enabled. In FIG. 4D, for example, the graphical representation320 is illustrated as a chart icon 322 and a label 324 entitled “StockWatcher.” The representation 320 also includes a “tear-drop” symbol 326for representing that, when selected, the representation 320 invokes adroplet-enabled application, i.e., the Stock Watcher application 100′.Thus, the graphical representation 320 is the link to the remotelystored Stock Watcher application 100′. Preferably, the graphicalrepresentation 320 and, in particular, the application identificationportion thereof, includes branding information. The branding ofgraphical representations of droplet-enabled applications andinformational content is discussed in further detail below.

While the Stock Watcher application 100 included a single droplet handleobject, i.e., the teardrop-shaped icon 120, it should be appreciatedthat droplet-enabled applications and informational content may includemore than one downloadable item (link) for invoking various functionaland informational features of the applications stored remotely. The item(link) may be an icon, an image or a string of text that, when selected,invokes a droplet-enabled application or retrieves droplet-enabledinformation from a remote location on the network.

As should be appreciated by those of skill in the art, the downloading(e.g., improved drag and drop) operation includes steps of interactingwith the operating system 80 of the client computer 20 (standardoperating system API routines). The interaction permits tracking of thepointing device during a drag and requesting that a file be generated onthe target of a drop. When dropped, the file (e.g., files 74 of FIG. 1)is associated to the interactive link (e.g., links 72 of FIG. 1). Thefile includes information for re-establishing the communicationconnection 54 to the application server 40 as the link is selected, asis discussed below.

In accordance with the present invention, and as depicted in FIG. 5,selection of the interactive link invokes the droplet-enabledapplication and/or information, e.g., the selection of the graphicalrepresentation 320 invokes the Stock Watcher application 100. That is,selecting the representation 320 (link) triggers the droplet supportingthe Stock Watcher application 100 to re-execute on the client computer20. The droplet, in cooperation with the droplet presentation client 25and the local operating system 80, re-establishes the communicationconnection 54 to the application server 40 for invoking and presentingfunctionality of the droplet-enabled Stock Watcher application 100.

The file generated during the downloading operation is accessed tosupport the representation operation. As illustrated in FIG. 1, each ofthe files 74 are associated to a respective link 72 as a result of thedownloading operation, e.g., link 1 to file 1 and link 2 to file 2, etc.The files 74 include information identifying the operating environmenton the client computer 20, and the identities of the application server40 to connect with and the server application that is run to present theStock Watcher application 100 (or other content) to the client computer20, once the connection is made. Preferably, the details/content of thefile are determined by the parameters that embedded the downloadableitem (link) into the informational content 36 delivered to the clientcomputer 20. That is, for example, the commands used to add theteardrop-shaped icon 120 into the web page that included the StockWatcher application 100 include a definition of the file to be createdduring any downloading operations to load the interactive link to theStock Watcher application 100 on a local client computer.

In one embodiment, the file 74 includes a location of the applicationserver 40, the application to be run on the server 40, the machine localaddresses for the application server 40 and client computer 20, ports(buffers supporting inter-machine communication between processes), anddroplet type (e.g., HTML, Java applet, a multimedia object, etc.). Asdiscussed above, the file 74 may also include information to supportpresentation of the graphical representation 320 (e.g., renderinginformation, labels, window definitions). The presentational informationincluded within the file 74 overrides the default information providedby the application server 40.

In another embodiment, the files 74 include a location (address) of thecontent provider 30 that originally delivered the droplet-enabledinformational content. Under certain conditions, for example an error inestablishing the communication connection 54, the droplet, the dropletpresentation client 25 and the local operating system 80 may cooperateto re-establish the communication connection 52 and request redeliveryof the informational content 36 that originally provided the link 72.

Accordingly, the present invention provides a mechanism for locallystoring links to remote droplet-enabled applications and/or information.For example, FIG. 2 illustrates the web page 110 presenting thedroplet-enabled Stock Watcher application 100. As described above withreference to FIGS. 4A-4D and 5, the droplet handle 120 (the link) to theStock Watcher application 100 was downloaded from the web page 110 andlocally stored as the graphical representation 320 on the portion 310 ofthe desktop of the client computer 20. As should be appreciated by thoseof skill in the art, the graphical representation 320 of the link isselected by, for example, double clicking the representation 320 withthe pointing device. Once selected, the link causes the local operatingsystem 80 to invoke the droplet supporting the droplet-enabledapplication. That is, the droplet cooperates with the dropletpresentation client 25 and local operating system 80 to access theassociated file and to re-establish the communication connection 54 tothe application server 40 for re-delivering information forre-presenting the Stock Watcher application 100. Importantly, the StockWatcher application 100 is, in effect, re-executed at the applicationserver 40 to re-present to the client computer 20 the functionality ofthe Stock Watcher application 100 without having the application 100locally loaded on the client computer 20 and also without re-navigatingback to the web page 110 that originally presented the Stock Watcherapplication 100 to the user. By eliminating the need to locally storeapplications and/or to re-navigate to a web page containing a desiredapplication, the present invention avoids two perceived disadvantages ofconventional processes for invoking remote applications and retrievingremotely stored information.

Branding of Droplets:

In accordance with the present invention, the graphical representation320 and, in particular, the application identification portion thereof,includes branding information. The branding information includes, forexample, a name of the application or institution supporting theapplication, and a logo or other familiar and easily identifiable symbolof the application or institution. Generally speaking, institutionsutilize branding information to uniquely identify a set of productsand/or services of the institution in the hope of establishing in theminds of its customers an indication of certain levels of quality andtrustworthiness. Branding is generally judged to be important inelectronic commerce (e.g., Internet-based transactions) for brandingenables customers to find, compare and select reliable businesses fromthe wide variety of competitive companies offering similar products andservices on the web.

By branding graphical representations of droplet-enabled applicationsand informational content, the supporting or sponsoring institution mayestablish, for example, a commercially valuable presence on the Internetand, when downloaded, on the client computers. In accordance with thepresent invention, not only is a locally stored interactive linkprovided for invoking remotely stored applications and information, butthe link may also be visually customized to resemble a commercial imagesuch as, for example a corporation's business name and/or logo.

In one embodiment, for example implemented under the MICROSOFT® Windows™operating system, the desktop supports the ability to use custom codelibraries to render icons for specific file types. The system 10 usesthis capability to render application specific icons under Windows™. InWindows™, icon information may be stored in a file. When the desktopneeds to draw the icon, it calls a library function that accesses theicon information in the files. The library function reads the file,builds the icon from the data therein, adds branding information (ifany) and returns the image to the desktop for rendering. Fordroplet-enabled applications and/or information, therefore, files aremaintained for all icons. The files include, for example, at least thedroplet-enabled symbol (the teardrop symbol 326 of FIG. 4D) and, in oneembodiment, the file is downloaded from the server 40 as a result ofexecuting the downloading (e.g., improved drag and drop) operationdiscussed above, and the icon information is included within the file74.

In another embodiment, for example implemented under the MACINTOSH®MacOS™ operating system, the client operating system natively supportsunique icons for each file. On this platform, the icon is assigned whenthe file is first created, e.g., as a final step of the improved dragand drop operation. Under some circumstance, the proper icon may notinitially be defined, e.g., if the file containing the renderinginformation was copied or dragged from an incompatible system. In thosecircumstance, when the client invokes the droplet-enabled application,the MacOS™ checks for the existence of a custom icon in the file. If theicon does not exist, it creates one from the icon information within thefile.

In another aspect of the present invention, droplet-enabled applicationsmay be “skinned.” That is, a “look and feel” of a user interface for aparticular droplet-enabled application includes aesthetically appealingor commercially branded visual and auditory characteristics that tend todistinguish the application from other applications running within thenetwork. The visual and auditory characteristics may include, forexample, distinctive colors, text fonts, control layouts, graphics orrelative sizes and spacing of controls. A “skin” may reflect anadvertising or promotional message, a favored item of interest such as,for example, a scene from a movie, video game or landscape.Additionally, the skin may vary characteristics of controls and labelsto provide a multi-lingual presentation of a particular droplet-enabledapplication. That is, the skinning permits an application to bepresented in varying languages such as, for example, English, Spanish,German, Italian, etc.

In accordance with the present invention, a skin may be chosen andapplied at run-time without requiring a change in the droplet-enabledapplication's coding or business logic (i.e., the C++, Java, visualbasic or other coding used to develop the applications need not bealtered). Therefore, skins permit the user interface of a givendroplet-enabled application to be customized (e.g., “private-labeled”)from one implementation (e.g., website) to another. That is, thecustomized user interface may be configured as a commercially (branded)or aesthetically appealing interface giving each instance of thedroplet-enabled application a desired look and feel. The customizationand/or the ability to choose a skin may be provided under the directionof a droplet application developer, website webmaster, or end-user.

In one embodiment, the skin that is applied as functionality of adroplet-enabled application is presented at the client computer 20 isselected from a library of available skins maintained at the contentprovider 30. A reference to the selected skin may then be downloaded andmaintained within the link locally stored at the client computer 20.Alternatively, the skin may be predefined (e.g., hard coded to overridesuser preferences) at the application server 40 so that as thedroplet-enabled application is presented to the client computer 20 thepredefined skin is included.

Transferring Droplets Between Users:

In accordance with one aspect of the present invention, droplets may betransferred between users and their respective client computers. Forexample, the droplet-enabled client/server system 10 includes theability to transmit a message, e.g., to compose an email message, whichcontains a Droplet™ and an associated link to a remotely storeddroplet-enabled application and/or information. Preferably, the messageis constructed to substantially ensure that the recipient is able to runthe Droplet™ and access the droplet-enabled applications or information,regardless of the platform of the receiving machine.

For example, a first user may download a droplet-enabled banner ad froma web site onto their desktop. The droplet-enabled banner ad mayinclude, for example, an application for conducting an informationalsurvey (e.g., a marketing survey) of importance to the sponsoring entityof the web site. In exchange for completing the survey, the sponsoringentity may offer a discounted price on some of its merchandise availablefor purchase on the web site. The first user considers the discountedprice an attractive offer and, therefore, wishes to pass the offer ontoassociates. In accordance with the present invention, a message iscreated that includes the droplet-enabled banner ad, the Droplet™ andthe link to the remotely stored application and/or informationsupporting the survey (droplet-enabled survey application and/orinformation). The message is transmitted to associates of the firstuser. Depending on capabilities of the associates, or more precisely, onthe client computers used by the associates, the droplet-enabled surveyapplication and/or information may be immediately accessed and utilizedby the associates.

In the present invention, the system 10 includes at least one of threepossible strategies for transmitting and running applications on theassociate's client computers, hereinafter referred to as a recipientcomputer. In a preferred embodiment, each of the three strategies isincluded within, for example, a message transmitting the link and,depending on the capabilities of the recipient computer, one of thethree strategies may be employed to successfully receive theapplication.

Firstly, the transmitting message (e.g., email message) may include adroplet-enabled application and/or information in a file format as anattachment. If the recipient computer is droplet-enabled, i.e.,operating in a similar way as client computer 20 wherein the dropletpresentation client 25 is locally installed, then the attachment appearsas a known file type and the recipient may open the droplet-enabledapplication and/or information file immediately. Once opened, the linkto the droplet-enabled survey application may be downloaded (e.g.,dragged and dropped) on the recipient computer. As a result, the fileattachment is copied onto a desktop or other location on the recipientcomputer (e.g., the “start” menu). Once downloaded, the link (e.g.,graphical representation 320 of the link) may be selected to initiatethe communication connection 54 to the application server 40 so that thedroplet-enabled survey application and/or information may be executedand/or retrieved as discussed above.

In a second, exemplary implementation where the recipient computer isnot droplet-enabled, the droplet-enabled survey application and/orinformation may be transmitted between parties by transmitting a message(e.g., an email message) containing a hypertext link to a web page. Theweb page includes a link for launching a web browser and for guiding theuser through the process of droplet-enabling the recipient computer.That is, the web browser receives instructions for downloading thedroplet presentation client 25 and links to the droplet-enabled surveyapplications and/or information.

In a third exemplary implementation, a message (e.g., email message)that transmits the droplet-enabled survey application and/or informationincludes a link to a web page that contains the droplet-enabled surveyapplication and/or information as an embedded object thereof. Thismethod is similar to the methods of retrieving droplet-enabledapplication and information discussed above with reference to the StockWatcher application 100, with the exception that the recipient isdirected specifically to the web site of interest without having tonavigate to the site on their own. This implementation assumes that theweb browser used by the recipient has the ability to host Java applets.

FIG. 8 is a simplified block diagram of a droplet-enabled client/serversystem 600 configured and operating in accordance with the presentinvention. In particular, FIG. 8 depicts two host computers (e.g., thecontent provider 30 and the application server 40) servicing requestsfor droplet-enabled applications and information from a plurality ofclient computers 602-608. The droplet-enabled applications andinformation are provided to a client computer either directly from thehost computers 30 and 40 or droplets and links to the applications andinformation are transferred from another client computer. As the directhost-to-client delivery process has been described in detail above,reference is made generally to the process of transferring droplets andlinks by and between the client computers 602-608.

In FIG. 8, client computer 608 requests informational content from thecontent provider 30 (via a message 610). In response, the contentprovider 30 provides the requested informational content 630, whichincludes, e.g., a link 632 and a Droplet™ 634 embedded therein (viamessage 612). Upon receipt, the Droplet™ 634 executes on the clientcomputer 608, and in cooperation with a droplet presentation client andthe local operating system (not shown), establishes a communicationconnection 614 to the application server 40. The application server 40,in turn, presents (over the communication connection 614) to the clientcomputer 608 the functionality of the droplet-enabled application,including information for presenting the application. The link 632 maybe locally stored to selectively re-establish the communicationconnection 614 and re-present the droplet-enabled application. Asdescribed in detail above, this process represents the first method ofpresenting functionality of droplet-enabled applications and/orinformation to a client computer.

FIG. 8 also illustrates a second mechanism wherein droplets and links todroplet-enabled applications and/or information are transferred by andbetween the respective client computers 602-608. For example, the link632 and droplet 634 downloaded to client computer 608 are transferred,via message 616, to the client computer 606. Once received and stored,the link 632 and droplet 634 (shown in dashed-lines to illustrate thatthe link 632 and droplet 634 were not downloaded directly to the clientcomputer 606) may be selected to establish a communication connection618 to the application server 40 whereby the droplet-enabled applicationand information for presenting the application may be passed to clientcomputer 606. Similarly, the link 632 and droplet 634 may be passed fromclient computer 606 to client computer 604, via a message 620, and fromclient computer 604 to client computer 602 via a message 622. As shouldbe appreciated, the passing of links and droplets facilitates theretrieval of droplet-enabled applications and/or information withoutrequiring the user of a client computer to navigate to the contentprovider 30 that originally provided the link and droplet for thedroplet-enabled application and/or information. In many respects, thesecond mechanism for presentation provides a more advantageous method ofsharing network applications and information among a group of clientcomputers than the first mechanism wherein each client computer with thegroup individually navigates to and downloads unique instances of linksand droplets of droplet-enabled applications.

Securing Droplet-Enabled Application and/or Information:

As generally discussed herein, a link to droplet-enabled applicationsand/or information is selected to invoke a unique instance of theapplication and/or information stored at a remote location on a network.In other words, each request for execution of a droplet-enabledapplication or retrieval of droplet-enabled information is satisfied byproviding an individual copy (instance) of the requested applicationand/or information.

However, in accordance with one aspect of the present invention, asecured and individually identifiable instance of droplet-enabledapplications and/or information may be shared and transferred betweenmultiple client computers. That is, the present invention provides akeyed instance of a droplet-enabled application having a uniqueidentification field referred to herein as a global uniqueidentification field (GUID). The keyed instance may be transferredbetween one or more client computers such that information accessed andstored from within the keyed instance may be modified only by clientcomputers that invoke the keyed (identification field specific) instanceof the droplet-enabled application. The keyed instance is, in effect,secured such that only users knowing a value of the GUID field mayspecifically request and access the individual instance of the secureddroplet-enabled application and/or information.

For example, the client/server system 10 includes a secured, or keyed,droplet-enabled photo-album application. A first user enters personalphotos into a uniquely identifiable instance of the photo-albumapplication, which has a GUID field of value “GUID1.” The first user'sphoto images are stored in a remote network location, as are allinstances of the photo-album application. A second user requesting thephoto-album application receives another uniquely identifiable instanceof the application and can not view the first user's photos, unless thesecond user provides the value of the GUID field corresponding to thefirst user's instance of the photo-album application. The presentinvention contemplates several methods by which the GUID field isprovided to a user.

In one example, the first user transfers the photo-album application toanother user, e.g., a third user. That is, the first user composes ane-mail message including a link and droplet to the uniquely identifiableinstance of the photo-album application, which has a GUID field of value“GUID1”. The link is downloadable and includes the GUID field of value“GUID I” for selectively invoking the unique instance of the photo-albumapplication. In this way, the first user grants access to its personalphotos to the third user while substantially prohibiting others (e.g.,the second user) from viewing them.

In another embodiment, the first user may view the GUID field and passit directly to the second, third or both users. When requesting a keyeddroplet-enabled application, the system 10 queries the user (e.g., thesecond or third user) as to whether they want a new instance or asecured instance of the application. If a secured instance is requested,the system 10 prompts the user to enter the identification field valuecorresponding to the secured application (e.g., GUID1).

Tracking Droplet Dispersion Information:

As noted above, each instance of a droplet is associated to a globalunique identification field (GUID). As illustrated in FIG. 8, a datastore, shown generally at 640, is maintained at the application server40 for storing tracking information 642 relating to usage ofdroplet-enabled applications and/or information. The data store 640includes, for example, a database, file, link list, or similar storagefeature, that contains the GUID and information regarding each clientcomputer 20 that has received links and droplets for droplet-enabledapplications and/or information.

By accessing and retrieving the tracking information 642 within the datastore 640, droplet dispersion data can be provided upon request. Thedroplet dispersion data identifies paths that links and droplets ofdroplet-enabled applications and/or information have taken throughoutthe system 600. Therefore, the data identifies the links and dropletsthat are transferred from one user, or client computer, to another(e.g., transmitted via an email message) as well as that are directlyaccessed and downloaded to client computers from, for example, web sitesor imbedded within stand-alone programs.

The tracking information 642 can be used for many purposes, for example,to track the relative success of a promotional campaign. Additionally,the tracking information 642 can be used to report the number of users adroplet-enabled application has reached from a specific, original user.

The tracking information 642 also includes information detailing usageaspects of particular droplet-enabled applications. For example, thetracking information 642 includes information as to when (e.g., time anddate) links and droplets corresponding to a droplet-enabled applicationwere downloaded to a client computer, how often (number of times) anapplication was invoked and for how long each time, what applicationfunctionality was utilized during a session, how long an applicationremained active and visible on a client computer's desktop, how oftenthe application was obscured by another application or minimized, andwhen the links and/or droplets of the droplet-enabled application weredeleted or erased from the client computer.

Generally speaking, a merchant or sponsoring entity of a droplet-enabledapplication or website providing a droplet-enabled marketing application(survey) may utilize this tracking information to determine, forexample, usage patterns of users or to target promotions to users havinga link and a droplet corresponding to the droplet-enabled application(such as a droplet-enabled shopping application having a particular itemof inventory) resident on its computer for a predetermined period oftime. The targeted promotion may, for example, offer a discounted priceto move the client toward a decision to purchase the item of inventory.

Preferably, the tracking information provided to merchants or sponsoringentities is anonymous (e.g., does not specifically identify a particularuser by name or machine address). Moreover, the tracking information maybe provided in a real-time manner by utilizing the communicationprotocol and message format discussed above.

Alternatively, the tracking information may be utilized by dropletapplication developers to optimize performance of the droplet and/or toevaluate user interest as to particular functionality with thedroplet-enabled application.

Providing a Ubiquitous Event Channel:

In one aspect of the present invention, illustrated in FIG. 6, theclient/server system 10 includes an event channel 400 for transmittinginformation to all clients of the system 10, all clients that havedownloaded a link and droplet of a particular droplet-enabledapplication or a specific client computer, for example, the clientcomputer 20. The information includes, for example, sounds, images, textor any combination thereof, transmitted to users to notify them of anoccurrence of an event. The notification to the users may be inreal-time (upon the occurrence of the event) or at a predetermined,regularly scheduled time period.

In one embodiment, for example, a droplet-enabled e-mail application isprovided. In this embodiment, messages are transmitted over the eventchannel 400 to notify a user of the receipt of an e-mail message. Theevent channel 400 permits the receipt of messages whether the e-mailapplication is actively executing or is not. Preferably, and when thee-mail application is not actively executing, the event channel notifiesthe user of the receipt of a message by flashing or blinking an iconassociated to the e-mail application (e.g., icon 320 for the StockWatcher application 100) on the desktop of the user's client machine. Inthis respect, the droplet presentation client includes an alarmapplication. The alarm application periodically evaluates the eventreceiving buffer 420 at the client computer 20 for messages such as, forexample, an “e-mail received” notification message as discussed above.In response to a received message, the alarm application alerts a userof the client computer by, for example, utilizing features of the userinterface to blink an icon, activate a sound, or launch a pop-up messageor menu. Alternatively, in a MICROSOFT® Windows™ environment, anenvelope symbol or icon representing that the message was received ispresented in the “tool tray” portion 340 of the desktop (FIG. 5).

The implementation of the event channel 400 requires the cooperation ofthe client computers, a central event server and application serversspread over the network 50. In FIG. 6, the central event server isimplemented within the content provider 30, although it should beappreciated that other implementation strategies are contemplated. Thecontent provider 30 includes an event transmitting buffer 410operatively coupled to each application server, for example theapplication server 40, and event receiving buffers within each clientcomputer, for example an event receiving buffer 420 within the clientcomputer 20.

In one embodiment, platform specific software for the client computers,the central event server and the application servers may be installedlocally or accessed through a link to a droplet-enabled version thereof.On the client computers, the software permits a user to individuallygrant the server applications access to its event receiving buffer 420.The client software also provides a view of event history, that is,permits the client to recall previously transmitted information (sounds,images, text or any combination thereof).

Once an application (e.g., a droplet-enabled application 41 executing onthe application server 40) is authorized by one or more users, theapplication 41 posts events by transmitting a message to thetransmitting buffer 410 of the central event server (e.g., message 430from the application server 40 to the content provider 30). The message430 includes, for example, the details of the posted event as well asinformation identifying the user or users that are to receive the event.The message is then delivered by the central event server to specifiedclients along the event channel 400.

Preferably, a user may invoke an application by selecting the eventinformation originating from the application. Additionally, applicationspecific information may be transmitted whether the application itselfis active or not.

The ubiquitous event channel 400 provides a mechanism by which adroplet-enabled application provider, developer or sponsoring entity mayselectively notify a user or users of the droplet-enabled applicationthat new or revised content is available. In one embodiment, theprovider, developer or sponsoring entity can transmit a notificationevent to all users or a particular user of a droplet-enabled applicationbased on, for example, a pattern of usage of the application. In anotherembodiment, users of client computers 20 may poll or otherwise evaluatethe event channel at a predetermined time period to determine whethernew or revised information pertinent to a droplet-enabled applicationloaded therein is available.

In an exemplary interactive, droplet-enabled shopping applicationprovided on a website, a user downloads the application and an item ofinventory onto their desktop. As noted above, tracking information maybe provided to the entity sponsoring the shopping applications. If apurchasing decision is delayed, pricing and availability informationpertaining to the item of inventory may changes. By utilizing thetracking information and the event channel 400, a notification messagecontaining the revised pricing and/or availability information may betransmitted to the user. Alternatively, the entity sponsoring theshopping application may wish to favorably influence the user to buy theitem of inventory and, therefore, may transmit a notification messagehaving a discounted price to the user over the event channel 400.According to the present invention, such a targeted promotional messagetransmitted via the event channel 400 would be received at the user'sclient computer whether the shopping application is currently executingor not.

Persistent State Maintenance:

The present invention provides capabilities for re-establishing aprevious operating state of a droplet-enabled application. For example,when a user re-establishes a session with a droplet-enabled application,the state of the application is restored to what it was when the userended the immediately prior session.

In accordance with the present invention, the application server 40maintains state information 48 regarding current operating states ofeach droplet-enabled application in the data store 640 on theapplication server 40 (FIGS. 1 and 8). The state information 48 is keptafter the application is terminated. The state information 48 includes auser identification field such that operating state information 48 for aparticular user is retrievable from the data store 640. It should beappreciated that the present invention contemplates a sign-on procedureor similar mechanism wherein a user registers prior to beginning asession. Accordingly, state information corresponding to a operatingsession of the user may be identified by a user id or the like. Asregistration procedures are generally known, further details of theprocedures are not further discussed herein. Rather, it should beappreciated that such a registration procedure is within the scope ofthe present invention.

When the same user re-invokes a droplet-enabled application, the stateinformation 48 corresponding to each application the user executedduring their last session is reviewed and the state information 48pertaining to the re-invoked application is retrieved from the datastore 640. The retrieved state information 48 is delivered to the useras the droplet-enabled application is presented to the client computer20. In one embodiment, the user is given an option of re-loading or notre-loading the state information 48 corresponding to the last session.As the state information 48 is maintained on the application server 40and identifiable by an association to a user's registration information,the state information 48 is provided regardless of client computer 20that a current and the prior operating session were run on. Therefore,even if a user re-invokes a droplet-enabled application from anotherclient machine, the previous state information 48 is accessible and maybe provided to the user upon request.

For example, and referring again briefly to FIG. 8, a user first logs onto (registers with the system 600) and invokes the Stock Watcherapplication 100 at a personal computer in their office, represented asthe client computer 608. During this session, the user alters the sizeof the window presenting the Stock Watcher application 100 and adds anumber of personal stock offerings to a list of “watched” stocks underthe Stock Watcher application 100. As should be appreciated, the stateinformation 48 is stored in the data store 640 and accessible byreferring the user's identification field. The user terminates thecurrent execution of the application 100 and logs off the clientcomputer 608. Later, the user is traveling and has an opportunity tocheck on the status of the watched stocks. The user re-invokes the StockWatcher application 100 from a portable electronic device such as, forexample, a laptop personal computer, represented as the client computer606. Because the user had previously transferred a link (e.g., link 632)to the Stock Watcher application 100 at the client computer 606 and, theuser can establish the communication connection 618 for retrieving theStock Watcher application 100. In accordance with the present invention,the state information 48 corresponding to the previous execution of theapplication 100 at client computer 608 is retrieved from the data store640 and presented to the user at client computer 606. As a result, theresized window presenting the Stock Watcher application 100 and thenewly added personal stock offerings are presented to the user.Accordingly, the present invention avoids a perceived disadvantage inconventional state tracking methodologies, for example, the cookietechnology outlined in the Background Section of this Specification. Asdiscussed above, the conventional methodologies are limited in thatprior state information is generally stored on the client computer 20that previously invoked the session and, therefore, modifications madeto an application invoked by a user at one client computer are notapparent when the user the user re-invokes the same application atanother client computer.

Preferably, the operating session state information 48 includes sizesand locations of open windows and controls, the position of the cursorwithin the application, any completed or partially completed data fieldvalues, and data fields or items of, for example, inventory selected bythe user during the previous session. Preferably, the application server40 stores the state information 48 in a long-term storage device toensure that a prolonged delay in user activity may be accounted for.Additionally, a standard API is defined for creating a storable packetof information representing the complete state of a droplet-enabledapplication. Also, the software running on the client computers 602-608must be capable of responding to requests (made under the communicationprotocol outlined above) to create windows and to move the selection.

If an operating session between a user and a droplet-enabled applicationis active and the user attempts to establish another session with thesame droplet-enabled application, the system 600 identifies a conflict.That is, a message is transmitted and displayed on the client computers602-608 providing the user the option of either terminating theattempted new session and resuming the existing session, or terminatingthe existing session and initiating the new session.

In order to identify concurrent operating sessions the system 600 (andsystem 10) stores a flag indicating that a particular user already hasan open session with a particular application. When a user attempts toconnect to a new application, the system 600 checks for the value of theflag. If it is set, the system 600 offers the choice to terminate theexisting session or create a new one. If the user chooses to terminate,the system notifies the running application that it has been terminated.If the user chooses to start a new session, the system 600 stores a flagindicating the choice. Preferably, the flag includes a timestamp touniquely identify sessions. If the user attempts a connection and thereare multiple active sessions, the user is given the option to terminateany one of them.

Mirroring the Desktop Application on to a Webtop:

In accordance with the present invention, a webtop is apassword-protected personal repository, e.g., an account on a web site,for storing links to droplet-enabled applications and informationcommonly used by authorized users of the account. The links includeaddresses of servers and names of the processes executed thereon insupport of the applications and information in the account.

As a link to a droplet-enabled application and/or information is copiedto a client computer 20, e.g., added to the desktop, within a window, orto a menu exhibited on the desktop, then the link may also be copied or“mirrored” to the user's webtop. Preferably, the mirroring behavior isunder the user's control. That is, a user may specify that the mirroringshould happen all the time, never happen or that a message should askthe user whether they want to mirror the link to the user's webtop. Ifan option is selected to mirror links to the webtop without anyinteraction with the user, the information necessary to access thewebtop account, i.e., an authorized user's name and password, is encodedwithin the mirroring process.

In a preferred embodiment, the mirroring process is performed regardlessof the method used to store the link to the droplet-enabled applicationor information on the desktop. That is, whether a link is downloaded bydragging a droplet handle out of a web page or by choosing a menucommand to add it, mirroring may be invoked. In one embodiment, the usermay choose to record a link in their webtop without adding the link tothe desktop. Also, the mirroring process distinguishes between instancesof the same application served by different servers.

As a user visits their webtop account, the applications stored for thatuser are presented in groups. Preferably, applications added areautomatically put in a “New Applications” group. Users have the optionto create new groups and move applications according to theirpreferences. In one embodiment, there is a web interface on the webtopthat enables a client to register that an application should be added toa particular user's repository.

Multiple Platform Implementation of Droplets:

As discussed above, droplet-enabled client computers 20 include thedroplet presentation client 25. In accordance with the presentinvention, the presentation client 25 is a generic, platform independentapplication program that processes user interface specificationsreceived from the application server 40 and routes user driven eventsback to the application server 40 utilizing the message formats (e.g.,event notification and session commands) discussed above.

As the droplet presentation client 25 is platform independent, oneinstance of the droplet presentation client 25 can execute all instancesof droplet-enabled applications whether downloaded from a web page or astandalone application running on the desktop. However, theimplementation of the droplet presentational client 25 may differ overvarious hardware and software platforms. For example, the dropletpresentation client 25 is designed to cooperate with many web browsersof differing vendors, operates on non-personal computer platforms suchas PalmPilots, Internet-enabled radio telephones, Netpliance™,1-Openers™, tablet computers and others. The presentation client 25 alsois designed to operate on multiple computer platforms such as personalcomputers running Windows™ or Linux operating systems, Apple Macintoshand Sun Solaris work stations. Additionally, the server computers 30 and40 operate on multiple hardware and software platforms such as, forexample, Windows NT and Unix server platforms.

In a web based implementation (within a web page), the dropletpresentational client 25 is preferably implemented as a Java applet, anActiveX component, or as a browser plug-in. Each of these implementationtechnologies presents an interface that is embedded in a web page. Theparameters of the HTML tag used to include the droplet presentationalclient 25 provides the server to connect to and what application torequest to the presentational client 25.

In a desktop based implementation, the droplet presentational client 25is implemented as a standard native executable. The presentationalclient 25 is launched as the droplet link is invoked and thepresentational client 25 receives information from the link, i.e., froma file associated to the link, that tells the presentational client 25which server to connect to and what application to request.

Security Features:

The droplet-enabled client/server system 10, configured and operating inaccordance with the present invention, includes security capabilitiesfor password and encryption-protected storage and transmission ofinformation, that is, information transmitted within the communicationprotocol, message format and event channel, discussed above, between theclient computers 20 and server computers, e.g., 30 and 40.

To substantially protect misappropriate of passwords, passwords aredigested prior to transmission by using MD5 or similar conventions.Similarly, within applications that request passwords, hashing isperformed as passwords are not transmitted in plain text, even onencrypted channels. When a password must be typed into a system, thecharacters are cloaked, i.e., each character display is represented byan asterisk.

Encryption routines are used within the system 10. As part of an initialprotocol negotiation between client and server, the server may specifythat some or all of the transmissions may be compressed. Whereprocessing power constraints are not prohibitive, the system 10 uses SSLas a standard mechanism to establish common keys. Where processing powerconstraints are at issued, alternative mechanisms and encryptionalgorithms may be substituted such as, for example, HTTP tunneling.Substitute algorithms are subject to security review and must be asreliable as the primary algorithm.

It should be appreciated that transmitted messaging within a particulardroplet-enabled application may be selectively secured or unsecured, atthe option of, for example, the droplet application developer or user ofthe application. Also, the level of security, for example, 1-bit, 30-bitor 128-bit encryption, is selectable at run-time. That is, sensitiveinformation may be transmitted over secured channels, while lesssensitive information is transmitted over less secured channels. As isknown to those in the art, there are direct relationships between thelevels of security and the constraints imposed on the networkconfiguration and desired network performance.

Developing Droplet-Enabled Applications:

Those skilled in the art should appreciate that developing adroplet-enabled application is similar to developing a GUI or desktopapplication using conventional component based architectures.Well-designed desktop applications isolate routines for processing userinterface, business logic and data storage functions into modules. Theseparation of user interface, business logic and data storage functionsinto modules affords a greater portability across differing platforms.For example, modifications can be made to the user interface module toaccount for hardware specific requirements without affecting thebusiness logic and/or data storage modules. Droplet-enabledapplications, constructed in accordance with the present invention,include this layered or module approach to application development.

FIG. 7 illustrates logical layers of a conventional application 500 ascompared to that of a droplet-enabled application 550. As is shown, theconventional application 500 includes a user interface layer 510, abusiness logic layer 520 and a database or data storage layer 530. Thedroplet-enabled application 550 includes a user interface layer 560, abusiness logic layer 570 and a database layer 580 that execute on anapplication server and provide functionality to an invoking clientcomputer.

The business logic layers 520 and 570 and the data storage layers 530and 580 of the conventional application 500 and droplet-enabledapplication 550 are substantially similar. A difference in the layeredapproaches of the applications 500 and 550 is that the user interfacelayer 560 of the droplet-enabled application 550 includes twocomponents, a client user interface 562 and a server user interface 564.The client user interface 562 executes on the client computer 20, whilethe server user interface 564 executes, with the business logic layer570 and data storage layer 580, on the application server 40.Application drivers within the server logical layers (564, 570 and 580)utilize the network communication protocol (i.e., event notificationmessages, update and window command messages) such that droplet-enabledapplications executing on the application server 40 appear to the userto be executing at the user's client computer 20. For example, theapplication drivers provide instructions for rendering graphicalobjects, default parameters or data values displayed within thedroplet-enabled application 550 to the client user interface 562.

It should also be appreciated that an application that includes theabove-described module or layered approach may be rewritten as adroplet-enabled application without substantial rewriting of existingcodes. That is, the existing application user interface layer need onlybe modified.

Preferably, droplet-enabled applications are deployed as dynamicallyloadable libraries that, once invoked locally by a client computer, areloaded and run under the control of application drivers on a remoteserver such as, for example, the application server 40. Thedroplet-enabled applications and the application drivers are preferablywritten in the Java, C++, Visual Basic, or other equivalent programminglanguages that support COM or CORBA interfaces. Also, thedroplet-enabled application is implemented as an object that isinstantiated at startup, holds all program information while active, andcauses the application to terminate when the object is destroyed. Byinstantiating many such objects within a single application server, theserver can serve any number of users running independent instances ofthe same application from the same server.

CONCLUSION

While the invention has been described and illustrated in connectionwith preferred embodiments, many variations and modifications, as willbe apparent to those of skill in the art, may be made without departingfrom the spirit and scope of the invention. By example, and as discussedabove, the teachings of this invention are not intended to be limited toany specific method of providing interactive links to applicationsand/or information stored at remote locations over the network. That is,it should be appreciated that the features disclosed herein are notlimited to application in an Internet or web based system.

For example, it should be appreciated that the client computer 20 may beany type of computing device such as a personal computer, work station,portable or handheld device, or the like. In a preferred embodiment, theclient computer 20, the content provider 30 and the application server40 are operatively coupled over a packet-switched network such as, forexample the Internet, having wired and wireless interconnections betweendevices.

Additionally, the preferred embodiment of the present invention includestwo server computers, the content provider for providing informationalcontent and the application server for providing droplet-enabledapplications and information including rendering instructions, defaultdata values and application-specific business logic to thedroplet-enabled applications. It should be appreciated that it is withinthe scope of the present invention for one server computer to providethese services and functionality. That is, the content provider mayinclude hardware and software resources for providing thedroplet-enabled applications and information including the renderinginstructions, default data values and application-specific businesslogic to the droplet-enabled applications. In this embodiment, the twonetwork connections discussed above as communication connections 52 and54 may physically be one connection that satisfies two logical functionsas illustrated herein.

Accordingly, the invention as set forth in the appended clams is notlimited to the precise details of construction set forth above as suchother variations and modifications as would be apparent to one skilledin the art are intended to be included within the spirit and scope ofthe invention as set forth in the defined claims.

What is claimed is:
 1. A computerized method for deliveringinteractivity over the web to a client device from a remotely storedapplication residing on a server, the method comprising: in response toreceiving a request for a web page from the client device, serving a webpage to the client device, the web page having executable code embeddedtherein which, when executed in a web browser running on the clientdevice, communicates messages with the remotely stored application onthe server, the web page further having user interface information forpresenting within the web browser a user interface for the remotelystored application; receiving an event message from the executable codeon the client device, the event message reporting an action taken withinone or more screen components in the user interface through the clientdevice, wherein receiving an event message comprises receiving an eventmessage reporting data entry in a text box in the user interface;executing application logic within the remotely stored application onthe server to generate data values based on the action reported in theevent message and client device information; and sending to the clientdevice an update message with at least some of the generated data valuesand instructions for use by the executable code to present the datavalues within the user interface of the web page at the client device.2. The method of claim 1, wherein executing application logic comprisesgenerating data values based on the client device information comprisinginformation representing hardware, software and/or user interfacecapabilities of the client device.
 3. The method of claim 2, comprisingreceiving the client device information from the client device.
 4. Acomputerized method for delivering interactivity over the web to aclient device from a remotely stored application residing on a server,the method comprising: in response to receiving a request for a web pagefrom the client device, serving a web page to the client device, the webpage having executable code embedded therein which, when executed in aweb browser running on the client device, communicates messages with theremotely stored application on the server, the web page further havinguser interface information for presenting within the web browser a userinterface for the remotely stored application; receiving an eventmessage from the executable code on the client device, the event messagereporting an action taken within one or more screen components in theuser interface through the client device, wherein receiving an eventmessage comprises receiving an event message reporting data entry withina drop down list in the user interface; executing application logicwithin the remotely stored application on the server to generate datavalues based on the action reported in the event message and clientdevice information; and sending to the client device an update messagewith at least some of the generated data values and instructions for useby the executable code to present the data values within the userinterface of the web page at the client device.
 5. The method of claim4, wherein executing application logic comprises generating data valuesbased on the client device information comprising informationrepresenting hardware, software and/or user interface capabilities ofthe client device.
 6. The method of claim 5, comprising receiving theclient device information from the client device.
 7. A computerizedmethod for delivering interactivity over the web to a client device froma remotely stored application residing on a server, the methodcomprising: in response to receiving a request for a web page from theclient device, serving a web page to the client device, the web pagehaving executable code embedded therein which, when executed in a webbrowser running on the client device, communicates messages with theremotely stored application on the server, the web page further havinguser interface information for presenting within the web browser a userinterface for the remotely stored application; receiving an eventmessage from the executable code on the client device, the event messagereporting an action taken within one or more screen components in theuser interface through the client device, wherein receiving an eventmessage comprises receiving an event message reporting a drag and dropoperation performed within the user interface; executing applicationlogic within the remotely stored application on the server to generatedata values based on the action reported in the event message and clientdevice information; and sending to the client device an update messagewith at least some of the generated data values and instructions for useby the executable code to present the data values within the userinterface of the web page at the client device.
 8. The method of claim7, wherein executing application logic comprises generating data valuesbased on the client device information comprising informationrepresenting hardware, software and/or user interface capabilities ofthe client device.
 9. The method of claim 8, comprising receiving theclient device information from the client device.
 10. The method ofclaim 7, wherein the remotely stored application is an emailapplication, and wherein the drag and drop operation comprises draggingof an email message displayed in the user interface to a folder.
 11. Acomputerized method for delivering interactivity over the web to aclient device from a remotely stored application residing on a server,the method comprising: in response to receiving a request for a web pagefrom the client device, serving a web page to the client device, the webpage having executable code embedded therein which, when executed in aweb browser running on the client device, communicates messages with theremotely stored application on the server, the web page further havinguser interface information for presenting within the web browser a userinterface for the remotely stored application; receiving an eventmessage from the executable code on the client device, the event messagereporting an action taken within one or more screen components in theuser interface through the client device, wherein receiving an eventmessage comprises receiving an event message reporting data entry withina button in the user interface; executing application logic within theremotely stored application on the server to generate data values basedon the action reported in the event message and client deviceinformation; and sending to the client device an update message with atleast some of the generated data values and instructions for use by theexecutable code to present the data values within the user interface ofthe web page at the client device.
 12. The method of claim 11, whereinexecuting application logic comprises generating data values based onthe client device information comprising information representinghardware, software and/or user interface capabilities of the clientdevice.
 13. The method of claim 12, comprising receiving the clientdevice information from the client device.